-- 潜水时隐藏物品栏和制作栏的客户端逻辑

-- 客户端监听玩家的潜水状态
AddClassPostConstruct("widgets/controls", function(self)
    local player = self.owner
    if not player then return end
    
    -- 记录上一次的状态，避免重复操作
    self._pono_last_hide_inventory = false
    self._pono_last_hide_crafting = false
    
    -- 创建一个周期任务来检查潜水状态
    self._pono_diving_check_task = self.inst:DoPeriodicTask(0.1, function()
        if not player or not player:IsValid() then
            if self._pono_diving_check_task then
                self._pono_diving_check_task:Cancel()
                self._pono_diving_check_task = nil
            end
            return
        end
        
        -- 检查玩家是否有隐藏物品栏的标签
        local should_hide_inventory = player:HasTag("pono_hide_inventory")
        
        -- 只在状态改变时执行操作
        if should_hide_inventory ~= self._pono_last_hide_inventory then
            self._pono_last_hide_inventory = should_hide_inventory
            
            -- 根据状态显示/隐藏物品栏
            if should_hide_inventory then
                if self.inv then
                    self.inv:Hide()
                end
            else
                if self.inv then
                    self.inv:Show()
                end
            end
        end
        
        -- 检查玩家是否有隐藏制作栏的标签
        local should_hide_crafting = player:HasTag("pono_hide_crafting")
        
        -- 只在状态改变时执行操作
        if should_hide_crafting ~= self._pono_last_hide_crafting then
            self._pono_last_hide_crafting = should_hide_crafting
            
            -- 根据状态显示/隐藏制作栏
            if should_hide_crafting then
                if self.crafttabs then
                    self.crafttabs:Hide()
                end
            else
                if self.crafttabs then
                    self.crafttabs:Show()
                end
            end
        end
    end)
end)
